using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TagMap")]
	public class TagMap : MonoClass
	{
		public TagMap(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TagMap(IntPtr address)
			: this(address, "TagMap")
		{
		}

		public void SetTag(int tag, int tagValue)
		{
			method_9("SetTag", new Class276.Enum20[2]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4
			}, tag, tagValue);
		}

		public void SetTag(GAME_TAG tag, int tagValue)
		{
			method_9("SetTag", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.I4
			}, tag, tagValue);
		}

		public int GetTag(int tag)
		{
			return method_10<int>("GetTag", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { tag });
		}

		public int GetTag(GAME_TAG enumTag)
		{
			return method_10<int>("GetTag", new Class276.Enum20[1] { Class276.Enum20.ValueType }, new object[1] { enumTag });
		}

		public bool HasTag(int tag)
		{
			return method_10<bool>("HasTag", new Class276.Enum20[1] { Class276.Enum20.I4 }, new object[1] { tag });
		}

		public void Replace(TagMap tags)
		{
			method_9("Replace", new Class276.Enum20[1] { Class276.Enum20.Class }, tags);
		}

		public void Clear()
		{
			method_8("Clear");
		}
	}
}
